1. Technical Field
This invention relates generally to worker processes that may be improperly or maliciously functioning, and more particularly to monitoring such worker processes by an executive process.
2. Description of the Prior Art
Modern computer systems typically have firmware, or other non-volatile memory. Firmware is generally a category of memory chips that hold their content without electrical power and include read-only memory (ROM), programmable ROM (PROM), erasable and programmable ROM (EPROM) and electrically erasable and programmable ROM (EEPROM) technologies. Firmware becomes “hard software” when holding program code. For example, in some computer systems, the firmware may include the basic input/output system (BIOS) of a system. The BIOS is a set of routines in a computer, which is stored on a chip and provides an interface between the operating system and the hardware. The BIOS supports all peripheral technologies and internal services, such as the real-time clock.
Within firmware and other computer operating environments, there generally exists a limited-functionality operating mode for performing hardware diagnostic testing, which is also known as performing diagnostics. Hardware diagnostic environments customarily are single-threaded environments without interrupt support, which means that the running process has complete control within the environment. Other processes cannot interrupt this process, and therefore it is difficult to monitor the running process. A limited solution is provided by a hardware counter that is commonly used by firmware programmers. The hardware counter is periodically incremented by the running process, so it can be determined that the running process is making progress in its diagnostic tests.
However, this approach still has disadvantages. While a process is running, it cannot be monitored except for its periodic incrementing of the hardware counter. The hardware counter serves only as a simplistic on or off flag indicating whether the process is functioning correctly. If the process functions improperly, either maliciously or because it has malfunctioned, only this fact is known. Examination of the process can be impossible, because if the operating environment locks up because of the improper functioning of the process, it usually must be turned off and back on, or otherwise reset, which results in erasing the remnants of the process in memory, such that it cannot be examined. For these described reasons, as well as other reasons, there is a need for the present invention.